package 集合.MyList;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


/*
遍历集合，得到每一个元素，查看有无“world”这个元素，如果有，就添加一个“javaee“元素

ConcurrentModificationException
当不允许对对象进行并发修改时，检测到对象并发修改的方法可能会引发此异常
 */
public class List并发修改异常 {
    public static void main(String[] args) {
        //创建集合对象
        List<String> list=new ArrayList<>();

        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");

        //遍历
//        Iterator<String> it=list.iterator();
//        while (it.hasNext()){
//            String s=it.next();//
//            if(s.equals("world")){
//                list.add("javaee");//通过集合去添加元素，造成了实际修改集合的次数与预期修改集合的次数不一致
//            }
//        }

        for (int i=0;i<list.size();i++){
            String s=list.get(i);//get源码中没有实际修改集合的次数=预期修改集合的次数的判断
            if(s.equals("world")){
                list.add("javaee");
            }
        }

        //输出
        System.out.println(list);
    }
}
